const WebSocket = require('ws');
const wss = new WebSocket.Server({ 
  port: 8089,
  verifyClient: (info, cb) => {
    console.log(`收到来自 ${info.origin} 的连接请求`);
    cb(true); // 始终允许连接（生产环境应添加验证逻辑）
  }
});

// 心跳检测间隔（毫秒）
const HEARTBEAT_INTERVAL = 30000;

wss.on('connection', (ws) => {
  console.log('新设备连接');
  
  // 添加心跳检测
  let heartbeat = setInterval(() => {
    if (ws.readyState === WebSocket.OPEN) {
      ws.ping();
    }
  }, HEARTBEAT_INTERVAL);

  // 消息处理
  ws.on('message', (message) => {
    try {
      console.log('收到消息:', message);
      
      // 自动回复确认（可选）
      if (ws.readyState === WebSocket.OPEN) {
        ws.send(JSON.stringify({
		  deviceId: 'ABCD11111',
		  command: 'rotate',
          status: 'ACK',
          timestamp: Date.now()
        }));
      }

      // 广播逻辑（根据实际需求修改）
      wss.clients.forEach(client => {
        if (client !== ws && client.readyState === WebSocket.OPEN) {
          client.send(message);
        }
      });
    } catch (e) {
      console.error('消息处理错误:', e);
    }
  });

  // 错误处理
  ws.on('error', (error) => {
    console.error('连接错误:', error);
  });

  // 连接关闭
  ws.on('close', () => {
    clearInterval(heartbeat);
    console.log('设备断开连接');
  });
});

console.log('WebSocket 服务已启动: ws://0.0.0.0:8089');